home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Demos / Bowers Development / AppMaker 2.0b5 / Examples / PowerPlant / Gadgets / CSliders.cp < prev    next >
Text File  |  1996-03-19  |  3KB  |  180 lines

  1. // CSliders.cp -- window methods
  2. // Created 3/19/96 12:49 PM by AppMaker
  3.  
  4. #include "CSliders.h"
  5.  
  6. #include <UReanimator.h>
  7. #include <URegistrar.h>
  8. #include <LStream.h>
  9. #include <LStdControl.h>
  10. #include "CGadgetsData.h"
  11. #include "CmdCodes.h"
  12.  
  13. #define PPob_SlidersID    202
  14. #define RidL_SlidersID    202
  15.  
  16. Boolean        CSliders::sIsRegistered = false;
  17.  
  18. //----------
  19. void
  20. CSliders::RegisterClass ()
  21. {
  22.     URegistrar::RegisterClass ('Slis', (ClassCreatorFunc)CSliders::CreateSlidersStream);
  23.  
  24.     // register the pane classes we use
  25.  
  26.     sIsRegistered = true;
  27. }
  28.  
  29. //----------
  30. CSliders*
  31. CSliders::CreateSliders(
  32.     LCommander            *inSuperCommander,
  33.     CGadgetsData        *inData)
  34. {
  35.     if (!sIsRegistered) {
  36.         RegisterClass ();
  37.     }
  38.  
  39.     CSliders        *window;
  40.  
  41.     window = (CSliders *)LWindow::CreateWindow(PPob_SlidersID, inSuperCommander);
  42.     window->ConnectToData (inData);
  43.  
  44.     return window;
  45. }
  46.  
  47. //----------
  48. //    This is the function you register with URegistrar to create a
  49. //    CSliders from a resource
  50.  
  51. CSliders*
  52. CSliders::CreateSlidersStream(
  53.     LStream    *inStream)
  54. {
  55.     return (new CSliders(inStream));
  56. }
  57.  
  58. //----------
  59. CSliders::CSliders()
  60. {
  61. }
  62.  
  63. //----------
  64. CSliders::CSliders(
  65.     LStream    *inStream)
  66.         : LWindow(inStream)
  67. {
  68. }
  69.  
  70. //----------
  71. CSliders::~CSliders()
  72. {
  73. }
  74.  
  75. //----------
  76. //    This member function gets called once the containment hierarchy that contains
  77. //    this pane has been built. It gives us a chance to get data members for
  78. //    interesting subviews, and to do other operations now that our subviews exist.
  79. void
  80. CSliders::FinishCreateSelf()
  81. {
  82.     mVerticalScroll = (LStdControl *)FindPaneByID ('Verl');
  83.     mSliderScroll = (LStdControl *)FindPaneByID ('Slir');
  84.     mSpinnerScroll = (LStdControl *)FindPaneByID ('Spir');
  85.     mHorizontalScroll = (LStdControl *)FindPaneByID ('Horl');
  86.     mPictSliderScroll = (LStdControl *)FindPaneByID ('Picr');
  87.  
  88.     UReanimator::LinkListenerToControls(this, this, RidL_SlidersID);
  89.         // the purpose is to "connect" self to whatever controls
  90.         // that we want to "listen" to
  91.  
  92. // any additional initialization for your window:
  93.  
  94. }
  95.  
  96. //----------
  97. void
  98. CSliders::ConnectToData    (CGadgetsData        *inData)
  99. {
  100.     mData = inData;
  101.     inData->AddListener (this);
  102. }
  103.  
  104. //----------
  105. void
  106. CSliders::ListenToMessage(
  107.     MessageT    inMessage,
  108.     void        *ioParam)
  109. {
  110.     switch (inMessage) {
  111.  
  112.     default:
  113.         break;
  114.     }
  115. }
  116.  
  117. //----------
  118. Boolean
  119. CSliders::ObeyCommand(
  120.     CommandT    inCommand,
  121.     void        *ioParam)
  122. {
  123.     Boolean        cmdHandled = true;
  124.  
  125.     switch (inCommand) {
  126.  
  127.     // +++ Add cases here for the commands you handle
  128.     //        Remember to add same cases to FindCommandStatus below
  129.     //        to enable/disable the commands
  130.  
  131.     default:
  132.             cmdHandled = LWindow::ObeyCommand(inCommand, ioParam);
  133.         break;
  134.     }
  135.  
  136.     return cmdHandled;
  137. }
  138.  
  139. //----------
  140. void
  141. CSliders::FindCommandStatus(
  142.     CommandT    inCommand,
  143.     Boolean        &outEnabled,
  144.     Boolean        &outUsesMark,
  145.     Char16        &outMark,
  146.     Str255        outName)
  147. {
  148.     outUsesMark = false;
  149.  
  150.     switch (inCommand) {
  151.  
  152.     // +++ Add cases here for the commands you handle
  153.  
  154.     default:
  155.             LWindow::FindCommandStatus(inCommand, outEnabled,
  156.                                         outUsesMark, outMark, outName);
  157.         break;
  158.     }
  159. }
  160.  
  161. //----------
  162. Boolean
  163. CSliders::FocusDraw()
  164. {
  165.     Boolean        focused = LView::FocusDraw();
  166.  
  167.     if (focused) {
  168.         AuxWinHandle    awHndl;
  169.         CTabHandle        awCTable;
  170.         ColorSpec        contentSpec;
  171.  
  172.         GetAuxWin(GetMacPort(), &awHndl);
  173.         awCTable = (**awHndl).awCTable;
  174.         contentSpec = (**awCTable).ctTable [wContentColor];        // should search vs. index
  175.         ::RGBBackColor(&contentSpec.rgb);
  176.     }
  177.  
  178.     return focused;
  179. }
  180.